<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
<script type="text/javascript">
console.log("====return函数调用====");
function add(x,y){
  return x+y;
  console.log("返回后面的代码");
}

console.log(add(2,3));
console.log("=====递归=====");
function hh(num) {
  if (num > 2) {
    return hh(num - 2)+ hh(num - 1);
  }else {
    return 1;
  }
}
console.log(hh(6));

console.log("=====递归=====");
 var option = add;
 console.log(option(5,6));

 function a(op){
   return op;
 }
 a (add(8,9));
 console.log(a(add(8,9)));
 var b= {
   name: add,
 }
 console.log(b.name(5,6));
 console.log("=====name属性=====");
 console.log("=====name属性返回键紧跟在function关键字之后=====");

function f1(){
}
console.log(f1.name);

var f2 =function (){

}
console.log("======f2======");
console.log("f2.name");

console.log("======length的属性======");
console.log("=======length属性返回函数预期传入的参数，即函数定义之中的参数个数=======");
function f3 (a,b,c,d){

}
console.log(f3.length);
console.log("======函数的toSring方法返回函数的远源码======");
function f4() {
  a(),
  b(),
  c(),
  d(),
}
console.log("======利用这一点，可以变相实现多行字符串。======");
var f5=function(fn){
  var arr=fn.toSring().split("\n");
  return arr.slice(1,arr.length-1).jion();
}
function f6(){
  /*
  这是一个多行注释
  */
}
console.log(f5(f6.toSring()));

console.log("======全局变量：在函数外 ======");
var name ="哈哈";

function f7(){
return name;

}


function f8(){
return name +"is good";
}

console.log(f7());
console.log(f8());
console.log(f7()+f8());


</script>


</body>
</html>
